package net.dao.impl;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import net.dao.RubroCalidadDao;
import net.model.RubroCalidad;

@Repository(value = "rubroCalidadDao")
public class RubroCalidadDaoImpl implements RubroCalidadDao {

	@Autowired
	private SessionFactory sessionFactory;

	@Override
	public List<RubroCalidad> getAllRubroCalidad(String nombreSistema) {
		Criteria criteria = sessionFactory.getCurrentSession().createCriteria(
				RubroCalidad.class);
		return (List<RubroCalidad>) criteria.add(
				Restrictions.eq("sistema", nombreSistema)).list();
	}

	@Override
	public RubroCalidad getRubroCalidad(String nombreRubro) {
		Criteria criteria = sessionFactory.getCurrentSession().createCriteria(
				RubroCalidad.class);
		List<RubroCalidad> rubros = (List<RubroCalidad>) criteria.add(
				Restrictions.eq("nombre", nombreRubro)).list();
		if (rubros.size() > 0)
			return rubros.get(0);
		else
			return null;
	}

	@Override
	public void saveRubroCalidad(RubroCalidad rubroCalidad) {
		sessionFactory.getCurrentSession().saveOrUpdate(rubroCalidad);
	}

}
